package inter

//房间接口
type RoomInter interface {
	/*
	*初始化桌子
	*参数说明:
	*@param:table			桌子对象
	 */
	InitTableFrameSink(table TableInter)

	/*
	*表示机器人上线
	*参数说明:
	*@param:user			用户对象
	*@param:game			游戏逻辑对象
	 */
	//AIUserLogin(user AIUserInter, game GameInter)
	/*
	*在房间内用户退出
	*参数说明:
	*@param:user			用户
	 */

	UserExit(user UserInetr)
}

//游戏逻辑
type GameInter interface {
	//关闭桌子
	CloseTable()
	//重置逻辑
	ResetTable()
	/*
	*用户坐下（进入桌子）
	*参数说明:
	*@param:chairId			椅子ID
	*@param:user			用户对象
	*返回值说明:
	*@return:bool			true 同意用户坐下 false不同意
	 */
	OnActionUserSitDown(user UserInetr, chairId int, config string) int

	/*
	*游戏逻辑消息
	*参数说明:
	*@param:subCmd			消息类型
	*@param:buffer			消息体
	*@param:user			用户
	 */
	OnGameMessage(subCmd int32, buffer []byte, user UserInetr)

	/*
	*发送场景消息---用户匹配成功，通知逻辑发送场景消息
	*参数说明:
	*@param:UserInetr	用户接口对象
	*返回值说明:
	*@return:bool			true 成功 false失败
	 */
	SendScene(UserInetr) bool

	/*
	*用户准备
	*参数说明:
	*@param:UserInetr	用户接口对象
	*返回值说明:
	*@return:bool			true 准备成功 false准备失败
	 */
	UserReady(UserInetr) bool

	/*
	*用户准备成功后，通知逻辑开始正常游戏
	*参数说明:
	*@param:UserInetr	用户接口对象
	*返回值说明:
	*@return:bool			true 同意开赛 false不同意开赛
	 */
	GameStart(UserInetr) bool

	/*
	*用户离开游戏
	*参数说明:
	*@param:UserInetr	用户接口对象
	*返回值说明:
	*@return:bool			true 准备成功 false准备失败
	 */
	LeaveGame(user UserInetr) bool

	/*
	*在游戏逻辑内用户退出
	*参数说明:
	*@param:user			用户
	*返回值说明:
	*@return:bool			true 正常离开 false异常离开
	 */
	UserExit(user UserInetr) bool
}
